c语言中->和.的区别

来源:百度知道 编辑:UC知道 时间:2024/09/25 08:32:30
&p->id和p.id一样吗
&p->id和&p.id一样吗

唯一的区别是->前面放的是指针,而.前面跟的是结构体变量,如已定义了一个结构体struct student,里面有一个int a;然后有一个结构体变量struct student stu及结构体变量指针struct student *p;且有p=&stu,那么p->a和stu.a表示同一个意思

->是指针引用数据用的,. 是普通的变量引用数据用的;
&p->id和p.id是不一样的,前者是取id的地址,后者是取id的值;
&p->id和&p.id是一样的,都是取id的地址,因为->和.的优先级都比&高,但这里面的p是不一样的,前者是指针变量。

->用于指针,
.用于对象

比如有一个class A;


A a;
A *p=&a;

调用时要
a.id;
p->id;

不明白hi我

都不一样。
最简单的辨别方法,自己编写一个简单程序,运行看效果。
p->id和p.id不一样
&p->id和p.id不一样
&p->id和&p.id不一样
p->id和&p.id不一样

只要这两个操作符前后的对象或变量一样,那么结果肯定不一样。因为这是两个不同的操作符。